<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>
<HEAD>
   <TITLE>class  OSGPARTICLE_EXPORT osgParticle::Program</TITLE>
   <META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">

<H2>class  OSGPARTICLE_EXPORT <A HREF="#DOC.DOCU">osgParticle::Program</A></H2></H2><BLOCKQUOTE>An abstract <CODE>ParticleProcessor</CODE> descendant for modifying particles "on the fly"  during the cull traversal.</BLOCKQUOTE>
<HR>

<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=125>
<param name=classes value="Mosg::Node,M,CParticleProcessor,MParticleProcessor.html,CProgram,MProgram.html,CModularProgram,MModularProgram.html">
<param name=before value="M,M,M,M^_">
<param name=after value="Md_SP,Md_,M,M">
<param name=indent value="0,1,2,2">
<param name=arrowdir value="down">
</APPLET>
<HR>

<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.19.1">Program</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.19.2">Program</A></B>(const <!1><A HREF="Program.html#DOC.2.19.2">Program</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual   const char* <B><A HREF="#DOC.2.19.3">libraryName</A></B>() const 
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual   const char* <B><A HREF="#DOC.2.19.4">className</A></B>() const 
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual   bool <B><A HREF="#DOC.2.19.5">isSameKindAs</A></B>(const osg::Object* obj) const 
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual   void <B><A HREF="#DOC.2.19.6">accept</A></B>(osg::NodeVisitor&amp; nv)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   void <B><A HREF="#DOC.2.19.10">process</A></B>(double dt)
<DD><I>Implementation of <CODE>ParticleProcessor::process()</CODE>.</I>
</DL></P>

<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual   <B><A HREF="#DOC.2.19.7">~Program</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Program.html">Program</A>&amp; <B><A HREF="#DOC.2.19.8">operator=</A></B>(const <!1><A HREF="Program.html">Program</A> &amp;)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual   void <B><A HREF="#DOC.2.19.9">execute</A></B>(double dt) = 0
<DD><I>Execute the program on the particle system.</I>
</DL></P>

</DL>
<HR><H3>Inherited from <A HREF="ParticleProcessor.html">ParticleProcessor</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>inline   <!1><A HREF="ParticleProcessor.html#DOC.2.14.1">ReferenceFrame</A> <B>getReferenceFrame</B>() const 
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>traverse</B>(osg::NodeVisitor &amp;nv)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline   ParticleProcessor::ReferenceFrame <B>getReferenceFrame</B>() const 
<DT>
<IMG ALT="o" SRC=icon2.gif>inline   void <B>setReferenceFrame</B>(<!1><A HREF="ParticleProcessor.html#DOC.2.14.1">ReferenceFrame</A> rf)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline   bool <B>isEnabled</B>() const 
<DT>
<IMG ALT="o" SRC=icon2.gif>inline   void <B>setEnabled</B>(bool v)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline   <!1><A HREF="ParticleSystem.html">ParticleSystem</A>* <B>getParticleSystem</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline   const <!1><A HREF="ParticleSystem.html">ParticleSystem</A>* <B>getParticleSystem</B>() const 
<DT>
<IMG ALT="o" SRC=icon2.gif>inline   void <B>setParticleSystem</B>(<!1><A HREF="ParticleSystem.html">ParticleSystem</A>* ps)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline   const bool <B>computeBound</B>() const 
<DT>
<IMG ALT="o" SRC=icon2.gif>inline   const osg::Matrix&amp; <B>getLocalToWorldMatrix</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline   const osg::Matrix&amp; <B>getWorldToLocalMatrix</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>inline   osg::Vec3 <B>transformLocalToWorld</B>(const osg::Vec3 &amp;P)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline   osg::Vec3 <B>transformWorldToLocal</B>(const osg::Vec3 &amp;P)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline   osg::Vec3 <B>rotateLocalToWorld</B>(const osg::Vec3 &amp;P)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline   osg::Vec3 <B>rotateWorldToLocal</B>(const osg::Vec3 &amp;P)
</DL></P>

<P><DL>
<DT><H3>Public Members</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>enum  <B>ReferenceFrame</B>
</DL></P>

</DL>

<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>An abstract <CODE>ParticleProcessor</CODE> descendant for modifying particles "on the fly" 
during the cull traversal.
Descendants of this class must implement the <CODE>execute()</CODE> method, which should iterate 
through all particles in the linked particle system and modify them somehow 
(usually updating their velocity vector).</BLOCKQUOTE>
<DL>

<A NAME="Program"></A>
<A NAME="DOC.2.19.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Program()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="Program"></A>
<A NAME="DOC.2.19.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Program(const <!1><A HREF="Program.html#DOC.2.19.2">Program</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="libraryName"></A>
<A NAME="DOC.2.19.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual   const char* libraryName() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="className"></A>
<A NAME="DOC.2.19.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual   const char* className() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="isSameKindAs"></A>
<A NAME="DOC.2.19.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual   bool isSameKindAs(const osg::Object* obj) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="accept"></A>
<A NAME="DOC.2.19.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual   void accept(osg::NodeVisitor&amp; nv)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="~Program"></A>
<A NAME="DOC.2.19.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual   ~Program()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator="></A>
<A NAME="DOC.2.19.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Program.html">Program</A>&amp; operator=(const <!1><A HREF="Program.html">Program</A> &amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="execute"></A>
<A NAME="DOC.2.19.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual   void execute(double dt) = 0</B></TT>
<DD>Execute the program on the particle system. Must be overriden in descendant classes.
<DL><DT><DD></DL><P>
<A NAME="process"></A>
<A NAME="DOC.2.19.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   void process(double dt)</B></TT>
<DD>Implementation of <CODE>ParticleProcessor::process()</CODE>. Do not call this method by yourself.
<DL><DT><DD></DL><P></DL>
<HR>
<DL><DT><B>Direct child classes:
</B><DD><A HREF="ModularProgram.html">ModularProgram</A><BR>
</DL>

<DL><DT><DD></DL><P><P><I><A HREF="index.html">Alphabetic index</A></I> <I><A HREF="HIER.html">HTML hierarchy of classes</A> or <A HREF="HIERjava.html">Java</A></I></P><HR>
<BR>
This page was generated with the help of <A HREF="http://docpp.sourceforge.net">DOC++</A>.
</BODY>
</HTML>
